package com.chuyangc.controller;


import com.chuyangc.entity.Goods;
import com.chuyangc.entity.Sellers;
import com.chuyangc.service.SellersService;
import com.chuyangc.vo.GoodsAndSellers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author 欧楚杨
 * @since 2022-05-04
 */
@RestController
@RequestMapping("/chuyangc/sellers")
@Api(tags = "商家相关的请求")
public class SellersController {
    @Autowired
    SellersService sellersService;

    /**
     * 查询所有商家信息
     * @return List
     */
    @GetMapping("/list")
    @ApiOperation("查询所有商家信息")
    public List<Sellers> listSellers(){
        return sellersService.list();
    }

    /**
     * 商家分页
     * @return List
     */
    @GetMapping("/pagelist/{pageNum}")
    @ApiOperation("商家分页")
    public PageInfo<Sellers> pageListGoods(@PathVariable("pageNum")int pageNum){
        int pageSize=3;
        PageHelper.startPage(pageNum, pageSize);
        List<Sellers> sellersList = sellersService.list();
        PageInfo<Sellers> sellersPageInfo = new PageInfo<>(sellersList);
        return sellersPageInfo;
    }

    /**
     * 商家记录数
     */
    @GetMapping("/pagelist/count")
    @ApiOperation("商家记录数")
    public int pageListCount(){
        return sellersService.count();
    }

    /**
     * 根据商家id删除商品
     * @return boolean
     */
    @DeleteMapping("/delete/{sid}")
    @ApiOperation("根据商家id删除商品")
    public boolean deleteSellers(@PathVariable("sid")Integer sid){
        return this.sellersService.removeById(sid);
    }

    /**
     * 根据商品家id查询内容
     * @param sid
     * @return
     */
    @GetMapping("/find/{sid}")
    @ApiOperation("根据商家id查询内容")
    public Sellers findSellers(@PathVariable("sid")Integer sid){
        return sellersService.getById(sid);
    }

    /**
     *根据传过来的sellers实体更新内容
     * @param sellers
     * @return
     */
    @PutMapping("/update")
    @ApiOperation("根据传过来的sellers实体更新内容")
    public boolean updateSellers(@RequestBody Sellers sellers){
        return sellersService.updateSellersBySid(sellers);
    }

    /**
     * 根据传过来的sellers实体添加库记录
     * @param sellers
     * @return
     */
    @PostMapping("/add")
    @ApiOperation("根据传过来的Sellers实体添加库记录")
    public boolean addSellers(@RequestBody Sellers sellers){
        return this.sellersService.save(sellers);
    }

    /**
     * 根据传过来的sellers实体添加库记录
     * @return
     */
    @GetMapping("/gs")
    @ApiOperation("关联查询")
    public List<GoodsAndSellers> addSellers(){
        return sellersService.listGS();
    }
}
